package com.ft.core.exceptions;

/**
 * @copyright (C), 2015-2019, 梵途科技有限公司
 * @fileName: ExceptionConstant
 * @author: 李阳
 * @date: 2019/4/17 10:59
 * @description: 异常常量
 */
public interface ExceptionConstant {

    /**
     * 用户友好异常代码，原样输出msg
     *
     * @author 李阳
     * <p>
     * 2017-10-09 16:48:57
     */
    class UserFriendlyErrorCode {
        /**
         * 用户异常默认代码
         */
        static final int USER_FRIENDLY_ERROR_CODE = 1000;
    }

    /**
     * 权限异常代码
     */
    class AuthorizationErrorCode {

        /**
         * 未登录
         */
        static final int USER_NOT_LOGIN = -1;

        /**
         * 未授权
         */
        static final int USER_NOT_HAS_AUTHORIZATION = 401;

        /**
         * 授权过期
         */
        static final int AUTHORIZATION_EXPIRED = 403;
    }

    /**
     * 应用异常代码，原样输出msg
     *
     * @author 李阳
     * <p>
     * 2017-10-09 16:48:57
     */
    class ApplicationErrorCode {

        /**
         * 应用异常默认代码
         */
        static final int APPLICATION_ERROR_CODE = 2000;
    }

    /**
     * 系统异常代码
     *
     * @author 李阳
     * <p>
     * 2017-10-09 16:45:26
     */
    class SystemErrorCode {
        /**
         * 系统异常默认代码
         */
        static final int SYSTEM_ERROR_CODE = 3000;

        /**
         * 验证产生引发的异常代码
         */
        static final int VALIDATION_ERROR_CODE = SYSTEM_ERROR_CODE + 200;

        /**
         * 由于配置引发的异常
         */
        static final int CONFIGURE_ERROR_CODE = SYSTEM_ERROR_CODE + 300;

        /**
         * 由于数据库引发的异常
         */
        static final int DB_BASE_ERROR_CODE = SYSTEM_ERROR_CODE + 400;

        /**
         * 由于网络引发的异常
         */
        static final int NETWORK_ERROR_CODE = SYSTEM_ERROR_CODE + 500;
    }
}
